Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / js / appSidebarNavLayout.js

Displaying Raw • Download


meshchatx/src/frontend/js/appSidebarNavLayout.js HEAD (2bf00cb3) Text, 17.59 KB

T8b949e// SPDX-License-Identifier: 0BSD

Tff7b72export Tff7b72const Te6edf3APP_SIDEBAR_NAV_LAYOUT_KEY Tff7b72= Ta5d6ff"meshchatx.sidebar.nav_layout"Tb4b4b4;
Tff7b72export Tff7b72const Te6edf3DEFAULT_NAV_GROUP_ORDER Tff7b72= Tb4b4b4[Ta5d6ff"communicate"Tb4b4b4, Ta5d6ff"explore"Tb4b4b4, Ta5d6ff"app"Tb4b4b4, Ta5d6ff"network"Tb4b4b4]Tb4b4b4;
Tff7b72export Tff7b72const Te6edf3NAV_EDIT_HOLD_MS Tff7b72= T79c0ff500Tb4b4b4;
Tff7b72export Tff7b72const Te6edf3NAV_EDIT_HOLD_MOVE_PX Tff7b72= T79c0ff12Tb4b4b4;

Tff7b72const Te6edf3FORBIDDEN_IDS Tff7b72= Tff7b72new Tffa657SetTb4b4b4(Tb4b4b4[Ta5d6ff"__proto__"Tb4b4b4, Ta5d6ff"constructor"Tb4b4b4, Ta5d6ff"prototype"Tb4b4b4]Tb4b4b4)Tb4b4b4;

T8b949e/**
* @typedef {{ group: string, tier: "primary" | "more" }} NavPlacement
* @typedef {{ version: number, groupOrder: string[], itemOrder: string[], placements: Record<string, NavPlacement> }} NavLayout
*/

T8b949e/**
* @param {string} key
* @returns {unknown}
*/
Tff7b72function Te6edf3readJsonTb4b4b4(Te6edf3keyTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Tffa657window Tff7b72=== Ta5d6ff"undefined" Tff7b72|| Tff7b72!Tffa657windowTb4b4b4.Te6edf3localStorageTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3raw Tff7b72= Tffa657windowTb4b4b4.Te6edf3localStorageTb4b4b4.Te6edf3getItemTb4b4b4(Te6edf3keyTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3rawTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72return Tffa657JSONTb4b4b4.Te6edf3parseTb4b4b4(Te6edf3rawTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
Tb4b4b4}

T8b949e/**
* @param {string} key
* @param {unknown} value
*/
Tff7b72function Te6edf3writeJsonTb4b4b4(Te6edf3keyTb4b4b4, Te6edf3valueTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Tffa657window Tff7b72=== Ta5d6ff"undefined" Tff7b72|| Tff7b72!Tffa657windowTb4b4b4.Te6edf3localStorageTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tffa657windowTb4b4b4.Te6edf3localStorageTb4b4b4.Te6edf3setItemTb4b4b4(Te6edf3keyTb4b4b4, Tffa657JSONTb4b4b4.Te6edf3stringifyTb4b4b4(Te6edf3valueTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
T8b949e// persistence is best-effort
Tb4b4b4}
Tb4b4b4}

T8b949e/**
* @param {unknown} id
* @returns {string}
*/
Tff7b72function Te6edf3cleanIdTb4b4b4(Te6edf3idTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3id Tff7b72!== Ta5d6ff"string"Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff""Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3trimmed Tff7b72= Te6edf3idTb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3trimmed Tff7b72|| Te6edf3FORBIDDEN_IDSTb4b4b4.Te6edf3hasTb4b4b4(Te6edf3trimmedTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff""Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3trimmedTb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {unknown} raw
* @returns {NavLayout | null}
*/
Tff7b72export Tff7b72function Te6edf3normalizeNavLayoutTb4b4b4(Te6edf3rawTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3raw Tff7b72|| Tff7b72typeof Te6edf3raw Tff7b72!== Ta5d6ff"object" Tff7b72|| Tffa657ArrayTb4b4b4.Te6edf3isArrayTb4b4b4(Te6edf3rawTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3groupOrder Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Tffa657ArrayTb4b4b4.Te6edf3isArrayTb4b4b4(Te6edf3rawTb4b4b4.Te6edf3groupOrderTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3value Tff7b72of Te6edf3rawTb4b4b4.Te6edf3groupOrderTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3id Tff7b72= Te6edf3cleanIdTb4b4b4(Te6edf3valueTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3id Tff7b72&& Tff7b72!Te6edf3groupOrderTb4b4b4.Te6edf3includesTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3groupOrderTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3id Tff7b72of Te6edf3DEFAULT_NAV_GROUP_ORDERTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3groupOrderTb4b4b4.Te6edf3includesTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3groupOrderTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72const Te6edf3itemOrder Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Tffa657ArrayTb4b4b4.Te6edf3isArrayTb4b4b4(Te6edf3rawTb4b4b4.Te6edf3itemOrderTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3value Tff7b72of Te6edf3rawTb4b4b4.Te6edf3itemOrderTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3id Tff7b72= Te6edf3cleanIdTb4b4b4(Te6edf3valueTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3id Tff7b72&& Tff7b72!Te6edf3itemOrderTb4b4b4.Te6edf3includesTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3itemOrderTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tff7b72const Te6edf3placements Tff7b72= Tffa657ObjectTb4b4b4.Te6edf3createTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3rawPlacements Tff7b72= Te6edf3rawTb4b4b4.Te6edf3placementsTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3rawPlacements Tff7b72&& Tff7b72typeof Te6edf3rawPlacements Tff7b72=== Ta5d6ff"object" Tff7b72&& Tff7b72!Tffa657ArrayTb4b4b4.Te6edf3isArrayTb4b4b4(Te6edf3rawPlacementsTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3key Tff7b72of Tffa657ObjectTb4b4b4.Te6edf3keysTb4b4b4(Te6edf3rawPlacementsTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3id Tff7b72= Te6edf3cleanIdTb4b4b4(Te6edf3keyTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3entry Tff7b72= Te6edf3rawPlacementsTb4b4b4[Te6edf3keyTb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3id Tff7b72|| Tff7b72!Te6edf3entry Tff7b72|| Tff7b72typeof Te6edf3entry Tff7b72!== Ta5d6ff"object" Tff7b72|| Tffa657ArrayTb4b4b4.Te6edf3isArrayTb4b4b4(Te6edf3entryTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3group Tff7b72= Te6edf3cleanIdTb4b4b4(Te6edf3entryTb4b4b4.Te6edf3groupTb4b4b4) Tff7b72|| Ta5d6ff"app"Tb4b4b4;
Te6edf3placementsTb4b4b4[Te6edf3idTb4b4b4] Tff7b72= Tb4b4b4{
Te6edf3groupTb4b4b4,
Te6edf3tierTff7b72: Te6edf3entryTb4b4b4.Te6edf3tier Tff7b72=== Ta5d6ff"more" Tff7b72? Ta5d6ff"more" Tff7b72: Ta5d6ff"primary"Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Tb4b4b4{
Te6edf3versionTff7b72: T79c0ff1Tb4b4b4,
Te6edf3groupOrderTb4b4b4,
Te6edf3itemOrderTb4b4b4,
Te6edf3placementsTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @returns {NavLayout | null}
*/
Tff7b72export Tff7b72function Te6edf3loadAppSidebarNavLayoutTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3normalizeNavLayoutTb4b4b4(Te6edf3readJsonTb4b4b4(Te6edf3APP_SIDEBAR_NAV_LAYOUT_KEYTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {NavLayout | null | undefined} layout
*/
Tff7b72export Tff7b72function Te6edf3saveAppSidebarNavLayoutTb4b4b4(Te6edf3layoutTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3normalized Tff7b72= Te6edf3normalizeNavLayoutTb4b4b4(Te6edf3layoutTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3normalizedTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3writeJsonTb4b4b4(Te6edf3APP_SIDEBAR_NAV_LAYOUT_KEYTb4b4b4, Te6edf3normalizedTb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {NavLayout | null | undefined} layout
* @returns {NavLayout | null}
*/
Tff7b72export Tff7b72function Te6edf3cloneNavLayoutTb4b4b4(Te6edf3layoutTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3normalized Tff7b72= Te6edf3normalizeNavLayoutTb4b4b4(Te6edf3layoutTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3normalizedTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72return Tb4b4b4{
Te6edf3versionTff7b72: T79c0ff1Tb4b4b4,
Te6edf3groupOrderTff7b72: Tb4b4b4[Tb4b4b4...Te6edf3normalizedTb4b4b4.Te6edf3groupOrderTb4b4b4]Tb4b4b4,
Te6edf3itemOrderTff7b72: Tb4b4b4[Tb4b4b4...Te6edf3normalizedTb4b4b4.Te6edf3itemOrderTb4b4b4]Tb4b4b4,
Te6edf3placementsTff7b72: Tb4b4b4{ Tb4b4b4...Te6edf3normalizedTb4b4b4.Te6edf3placements Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {{ id?: string, group?: string, navTier?: string }} item
* @returns {NavPlacement}
*/
Tff7b72export Tff7b72function Te6edf3defaultNavPlacementTb4b4b4(Te6edf3itemTb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3groupTff7b72: Te6edf3itemTff7b72?Tb4b4b4.Te6edf3group Tff7b72|| Ta5d6ff"app"Tb4b4b4,
Te6edf3tierTff7b72: Te6edf3itemTff7b72?Tb4b4b4.Te6edf3navTier Tff7b72=== Ta5d6ff"more" Tff7b72? Ta5d6ff"more" Tff7b72: Ta5d6ff"primary"Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {{ id: string, group?: string, navTier?: string }} item
* @param {NavLayout | null | undefined} layout
* @returns {NavPlacement}
*/
Tff7b72function Te6edf3placementForTb4b4b4(Te6edf3itemTb4b4b4, Te6edf3layoutTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3saved Tff7b72= Te6edf3layoutTff7b72?Tb4b4b4.Te6edf3placementsTff7b72?Tb4b4b4.Tb4b4b4[Te6edf3itemTb4b4b4.Te6edf3idTb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3saved Tff7b72&& Te6edf3savedTb4b4b4.Te6edf3group Tff7b72&& Te6edf3savedTb4b4b4.Te6edf3tierTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3savedTb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3defaultNavPlacementTb4b4b4(Te6edf3itemTb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {Array<{ id: string, group?: string, navTier?: string }>} items
* @param {NavLayout | null | undefined} layout
* @returns {typeof items}
*/
Tff7b72export Tff7b72function Te6edf3orderItemsByLayoutTb4b4b4(Te6edf3itemsTb4b4b4, Te6edf3layoutTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3byId Tff7b72= Tff7b72new Tffa657MapTb4b4b4(Te6edf3itemsTb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3itemTb4b4b4) Tb4b4b4=> Tb4b4b4[Te6edf3itemTb4b4b4.Te6edf3idTb4b4b4, Te6edf3itemTb4b4b4]Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3ordered Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3used Tff7b72= Tff7b72new Tffa657SetTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3savedOrder Tff7b72= Te6edf3layoutTff7b72?Tb4b4b4.Te6edf3itemOrder Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3id Tff7b72of Te6edf3savedOrderTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3item Tff7b72= Te6edf3byIdTb4b4b4.Te6edf3getTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3item Tff7b72|| Te6edf3usedTb4b4b4.Te6edf3hasTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Te6edf3orderedTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3itemTb4b4b4)Tb4b4b4;
Te6edf3usedTb4b4b4.Te6edf3addTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3item Tff7b72of Te6edf3itemsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3usedTb4b4b4.Te6edf3hasTb4b4b4(Te6edf3itemTb4b4b4.Te6edf3idTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3orderedTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3itemTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Te6edf3orderedTb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {Array<{ id: string, group?: string, navTier?: string }>} items
* @param {NavLayout | null | undefined} layout
* @param {{ includeEmptyGroups?: boolean }} [options]
* @returns {{ primaryGroups: Array<{ id: string, items: typeof items }>, moreItems: typeof items }}
*/
Tff7b72export Tff7b72function Te6edf3applyNavLayoutTb4b4b4(Te6edf3itemsTb4b4b4, Te6edf3layoutTb4b4b4, Te6edf3options Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3includeEmptyGroups Tff7b72= Te6edf3optionsTb4b4b4.Te6edf3includeEmptyGroups Tff7b72=== Tff7b72trueTb4b4b4;
Tff7b72const Te6edf3orderedItems Tff7b72= Te6edf3orderItemsByLayoutTb4b4b4(Te6edf3itemsTb4b4b4, Te6edf3layoutTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3primaryByGroup Tff7b72= Tffa657ObjectTb4b4b4.Te6edf3createTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3moreItems Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3item Tff7b72of Te6edf3orderedItemsTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3placement Tff7b72= Te6edf3placementForTb4b4b4(Te6edf3itemTb4b4b4, Te6edf3layoutTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3placementTb4b4b4.Te6edf3tier Tff7b72=== Ta5d6ff"more"Tb4b4b4) Tb4b4b4{
Te6edf3moreItemsTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3itemTb4b4b4)Tb4b4b4;
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3groupId Tff7b72= Te6edf3placementTb4b4b4.Te6edf3group Tff7b72|| Ta5d6ff"app"Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3primaryByGroupTb4b4b4[Te6edf3groupIdTb4b4b4]Tb4b4b4) Tb4b4b4{
Te6edf3primaryByGroupTb4b4b4[Te6edf3groupIdTb4b4b4] Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tb4b4b4}
Te6edf3primaryByGroupTb4b4b4[Te6edf3groupIdTb4b4b4]Tb4b4b4.Te6edf3pushTb4b4b4(Te6edf3itemTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3groupOrder Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3seen Tff7b72= Tff7b72new Tffa657SetTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3savedGroups Tff7b72= Te6edf3layoutTff7b72?Tb4b4b4.Te6edf3groupOrderTff7b72?Tb4b4b4.Te6edf3length Tff7b72? Te6edf3layoutTb4b4b4.Te6edf3groupOrder Tff7b72: Te6edf3DEFAULT_NAV_GROUP_ORDERTb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3groupId Tff7b72of Te6edf3savedGroupsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3groupId Tff7b72|| Te6edf3seenTb4b4b4.Te6edf3hasTb4b4b4(Te6edf3groupIdTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Te6edf3groupOrderTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3groupIdTb4b4b4)Tb4b4b4;
Te6edf3seenTb4b4b4.Te6edf3addTb4b4b4(Te6edf3groupIdTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3groupId Tff7b72of Te6edf3DEFAULT_NAV_GROUP_ORDERTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3seenTb4b4b4.Te6edf3hasTb4b4b4(Te6edf3groupIdTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3groupOrderTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3groupIdTb4b4b4)Tb4b4b4;
Te6edf3seenTb4b4b4.Te6edf3addTb4b4b4(Te6edf3groupIdTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3groupId Tff7b72of Tffa657ObjectTb4b4b4.Te6edf3keysTb4b4b4(Te6edf3primaryByGroupTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3seenTb4b4b4.Te6edf3hasTb4b4b4(Te6edf3groupIdTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3groupOrderTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3groupIdTb4b4b4)Tb4b4b4;
Te6edf3seenTb4b4b4.Te6edf3addTb4b4b4(Te6edf3groupIdTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72const Te6edf3primaryGroups Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3groupId Tff7b72of Te6edf3groupOrderTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3groupItems Tff7b72= Te6edf3primaryByGroupTb4b4b4[Te6edf3groupIdTb4b4b4] Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3groupItemsTb4b4b4.Te6edf3length Tff7b72> T79c0ff0 Tff7b72|| Te6edf3includeEmptyGroupsTb4b4b4) Tb4b4b4{
Te6edf3primaryGroupsTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{ Te6edf3idTff7b72: Te6edf3groupIdTb4b4b4, Te6edf3itemsTff7b72: Te6edf3groupItems Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Tb4b4b4{ Te6edf3primaryGroupsTb4b4b4, Te6edf3moreItems Tb4b4b4}Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {Array<{ id: string, items: Array<{ id: string, group?: string }> }>} primaryGroups
* @param {Array<{ id: string, group?: string }>} moreItems
* @returns {NavLayout}
*/
Tff7b72export Tff7b72function Te6edf3captureNavLayoutTb4b4b4(Te6edf3primaryGroupsTb4b4b4, Te6edf3moreItemsTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3groupOrder Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3itemOrder Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3placements Tff7b72= Tffa657ObjectTb4b4b4.Te6edf3createTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3group Tff7b72of Te6edf3primaryGroups Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3groupId Tff7b72= Te6edf3cleanIdTb4b4b4(Te6edf3groupTff7b72?Tb4b4b4.Te6edf3idTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3groupId Tff7b72|| Te6edf3groupOrderTb4b4b4.Te6edf3includesTb4b4b4(Te6edf3groupIdTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Te6edf3groupOrderTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3groupIdTb4b4b4)Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3item Tff7b72of Te6edf3groupTb4b4b4.Te6edf3items Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3itemId Tff7b72= Te6edf3cleanIdTb4b4b4(Te6edf3itemTff7b72?Tb4b4b4.Te6edf3idTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3itemId Tff7b72|| Te6edf3itemOrderTb4b4b4.Te6edf3includesTb4b4b4(Te6edf3itemIdTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Te6edf3itemOrderTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3itemIdTb4b4b4)Tb4b4b4;
Te6edf3placementsTb4b4b4[Te6edf3itemIdTb4b4b4] Tff7b72= Tb4b4b4{ Te6edf3groupTff7b72: Te6edf3groupIdTb4b4b4, Te6edf3tierTff7b72: Ta5d6ff"primary" Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3id Tff7b72of Te6edf3DEFAULT_NAV_GROUP_ORDERTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3groupOrderTb4b4b4.Te6edf3includesTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3groupOrderTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3item Tff7b72of Te6edf3moreItems Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3itemId Tff7b72= Te6edf3cleanIdTb4b4b4(Te6edf3itemTff7b72?Tb4b4b4.Te6edf3idTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3itemId Tff7b72|| Te6edf3itemOrderTb4b4b4.Te6edf3includesTb4b4b4(Te6edf3itemIdTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Te6edf3itemOrderTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3itemIdTb4b4b4)Tb4b4b4;
Te6edf3placementsTb4b4b4[Te6edf3itemIdTb4b4b4] Tff7b72= Tb4b4b4{
Te6edf3groupTff7b72: Te6edf3itemTb4b4b4.Te6edf3group Tff7b72|| Ta5d6ff"app"Tb4b4b4,
Te6edf3tierTff7b72: Ta5d6ff"more"Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72return Tb4b4b4{
Te6edf3versionTff7b72: T79c0ff1Tb4b4b4,
Te6edf3groupOrderTb4b4b4,
Te6edf3itemOrderTb4b4b4,
Te6edf3placementsTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {NavLayout} layout
* @param {string} itemId
* @param {NavPlacement} placement
*/
Tff7b72function Te6edf3ensurePlacementTb4b4b4(Te6edf3layoutTb4b4b4, Te6edf3itemIdTb4b4b4, Te6edf3placementTb4b4b4) Tb4b4b4{
Te6edf3layoutTb4b4b4.Te6edf3placementsTb4b4b4[Te6edf3itemIdTb4b4b4] Tff7b72= Tb4b4b4{
Te6edf3groupTff7b72: Te6edf3placementTb4b4b4.Te6edf3group Tff7b72|| Ta5d6ff"app"Tb4b4b4,
Te6edf3tierTff7b72: Te6edf3placementTb4b4b4.Te6edf3tier Tff7b72=== Ta5d6ff"more" Tff7b72? Ta5d6ff"more" Tff7b72: Ta5d6ff"primary"Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {Array<{ id: string, group?: string, navTier?: string }>} items
* @param {NavLayout | null | undefined} layout
* @returns {NavLayout}
*/
Tff7b72function Te6edf3layoutFromItemsTb4b4b4(Te6edf3itemsTb4b4b4, Te6edf3layoutTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3view Tff7b72= Te6edf3applyNavLayoutTb4b4b4(Te6edf3itemsTb4b4b4, Te6edf3layoutTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3captureNavLayoutTb4b4b4(Te6edf3viewTb4b4b4.Te6edf3primaryGroupsTb4b4b4, Te6edf3viewTb4b4b4.Te6edf3moreItemsTb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {NavLayout} layout
* @param {Array<{ id: string }>} items
* @param {string} movingId
* @param {number} insertAt
*/
Tff7b72function Te6edf3moveIdInItemOrderTb4b4b4(Te6edf3layoutTb4b4b4, Te6edf3itemsTb4b4b4, Te6edf3movingIdTb4b4b4, Te6edf3insertAtTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3ids Tff7b72= Te6edf3orderItemsByLayoutTb4b4b4(Te6edf3itemsTb4b4b4, Te6edf3layoutTb4b4b4)Tb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3itemTb4b4b4) Tb4b4b4=> Te6edf3itemTb4b4b4.Te6edf3idTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3without Tff7b72= Te6edf3idsTb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3idTb4b4b4) Tb4b4b4=> Te6edf3id Tff7b72!== Te6edf3movingIdTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3index Tff7b72= Tffa657MathTb4b4b4.Te6edf3maxTb4b4b4(T79c0ff0Tb4b4b4, Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Te6edf3insertAtTb4b4b4, Te6edf3withoutTb4b4b4.Te6edf3lengthTb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3withoutTb4b4b4.Te6edf3spliceTb4b4b4(Te6edf3indexTb4b4b4, T79c0ff0Tb4b4b4, Te6edf3movingIdTb4b4b4)Tb4b4b4;
Te6edf3layoutTb4b4b4.Te6edf3itemOrder Tff7b72= Te6edf3withoutTb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {NavLayout | null | undefined} layout
* @param {Array<{ id: string, group?: string, navTier?: string }>} items
* @returns {NavLayout}
*/
Tff7b72function Te6edf3layoutOrDefaultTb4b4b4(Te6edf3layoutTb4b4b4, Te6edf3itemsTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3cloneNavLayoutTb4b4b4(Te6edf3layoutTb4b4b4) Tff7b72|| Te6edf3layoutFromItemsTb4b4b4(Te6edf3items Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4, Tff7b72nullTb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {NavLayout | null | undefined} layout
* @param {string} itemId
* @param {{ type: string, id?: string, position?: "before" | "after" }} target
* @param {Array<{ id: string, group?: string, navTier?: string }>} items
* @param {{ preservePlacement?: boolean }} [options]
* @returns {NavLayout | null}
*/
Tff7b72export Tff7b72function Te6edf3moveNavItemTb4b4b4(Te6edf3layoutTb4b4b4, Te6edf3itemIdTb4b4b4, Te6edf3targetTb4b4b4, Te6edf3itemsTb4b4b4, Te6edf3options Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3next Tff7b72= Te6edf3layoutOrDefaultTb4b4b4(Te6edf3layoutTb4b4b4, Te6edf3itemsTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3movingId Tff7b72= Te6edf3cleanIdTb4b4b4(Te6edf3itemIdTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3movingId Tff7b72|| Tff7b72!Te6edf3target Tff7b72|| Tff7b72typeof Te6edf3target Tff7b72!== Ta5d6ff"object"Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3preservePlacement Tff7b72= Te6edf3optionsTb4b4b4.Te6edf3preservePlacement Tff7b72=== Tff7b72trueTb4b4b4;
Tff7b72const Te6edf3byId Tff7b72= Tff7b72new Tffa657MapTb4b4b4(Tb4b4b4(Te6edf3items Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4)Tb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3itemTb4b4b4) Tb4b4b4=> Tb4b4b4[Te6edf3itemTb4b4b4.Te6edf3idTb4b4b4, Te6edf3itemTb4b4b4]Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3movingItem Tff7b72= Te6edf3byIdTb4b4b4.Te6edf3getTb4b4b4(Te6edf3movingIdTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3movingItemTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3nextTb4b4b4.Te6edf3placementsTb4b4b4[Te6edf3movingIdTb4b4b4]Tb4b4b4) Tb4b4b4{
Te6edf3ensurePlacementTb4b4b4(Te6edf3nextTb4b4b4, Te6edf3movingIdTb4b4b4, Te6edf3defaultNavPlacementTb4b4b4(Te6edf3movingItemTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3orderedIds Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Te6edf3orderItemsByLayoutTb4b4b4(Te6edf3itemsTb4b4b4, Te6edf3nextTb4b4b4)Tb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3itemTb4b4b4) Tb4b4b4=> Te6edf3itemTb4b4b4.Te6edf3idTb4b4b4)Tb4b4b4;

Tff7b72if Tb4b4b4(Te6edf3targetTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"item"Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3targetId Tff7b72= Te6edf3cleanIdTb4b4b4(Te6edf3targetTb4b4b4.Te6edf3idTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3targetId Tff7b72|| Te6edf3targetId Tff7b72=== Te6edf3movingIdTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3targetItem Tff7b72= Te6edf3byIdTb4b4b4.Te6edf3getTb4b4b4(Te6edf3targetIdTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3targetItemTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3preservePlacementTb4b4b4) Tb4b4b4{
Te6edf3ensurePlacementTb4b4b4(Te6edf3nextTb4b4b4, Te6edf3movingIdTb4b4b4, Te6edf3placementForTb4b4b4(Te6edf3targetItemTb4b4b4, Te6edf3nextTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3ids Tff7b72= Te6edf3orderedIdsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3without Tff7b72= Te6edf3idsTb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3idTb4b4b4) Tb4b4b4=> Te6edf3id Tff7b72!== Te6edf3movingIdTb4b4b4)Tb4b4b4;
Tff7b72let Te6edf3insertAt Tff7b72= Te6edf3withoutTb4b4b4.Te6edf3indexOfTb4b4b4(Te6edf3targetIdTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3insertAt Tff7b72< T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3insertAt Tff7b72= Te6edf3withoutTb4b4b4.Te6edf3lengthTb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3targetTb4b4b4.Te6edf3position Tff7b72=== Ta5d6ff"after"Tb4b4b4) Tb4b4b4{
Te6edf3insertAt Tff7b72+= T79c0ff1Tb4b4b4;
Tb4b4b4}
Te6edf3withoutTb4b4b4.Te6edf3spliceTb4b4b4(Te6edf3insertAtTb4b4b4, T79c0ff0Tb4b4b4, Te6edf3movingIdTb4b4b4)Tb4b4b4;
Te6edf3nextTb4b4b4.Te6edf3itemOrder Tff7b72= Te6edf3withoutTb4b4b4;
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}

Tff7b72if Tb4b4b4(Te6edf3targetTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"group" Tff7b72|| Te6edf3targetTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"group-start" Tff7b72|| Te6edf3targetTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"group-end"Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3groupId Tff7b72= Te6edf3cleanIdTb4b4b4(Te6edf3targetTb4b4b4.Te6edf3idTb4b4b4) Tff7b72|| Ta5d6ff"app"Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3preservePlacementTb4b4b4) Tb4b4b4{
Te6edf3ensurePlacementTb4b4b4(Te6edf3nextTb4b4b4, Te6edf3movingIdTb4b4b4, Tb4b4b4{ Te6edf3groupTff7b72: Te6edf3groupIdTb4b4b4, Te6edf3tierTff7b72: Ta5d6ff"primary" Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3view Tff7b72= Te6edf3applyNavLayoutTb4b4b4(Te6edf3itemsTb4b4b4, Te6edf3nextTb4b4b4, Tb4b4b4{ Te6edf3includeEmptyGroupsTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3groupItems Tff7b72= Tb4b4b4(Te6edf3viewTb4b4b4.Te6edf3primaryGroupsTb4b4b4.Te6edf3findTb4b4b4(Tb4b4b4(Te6edf3entryTb4b4b4) Tb4b4b4=> Te6edf3entryTb4b4b4.Te6edf3id Tff7b72=== Te6edf3groupIdTb4b4b4)Tff7b72?Tb4b4b4.Te6edf3items Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4)Tb4b4b4.Te6edf3filterTb4b4b4(
Tb4b4b4(Te6edf3itemTb4b4b4) Tb4b4b4=> Te6edf3itemTb4b4b4.Te6edf3id Tff7b72!== Te6edf3movingId
Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3targetTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"group-end" Tff7b72&& Te6edf3groupItemsTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3lastId Tff7b72= Te6edf3groupItemsTb4b4b4[Te6edf3groupItemsTb4b4b4.Te6edf3length Tff7b72- T79c0ff1Tb4b4b4]Tb4b4b4.Te6edf3idTb4b4b4;
Tff7b72const Te6edf3ids Tff7b72= Te6edf3orderedIdsTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3idTb4b4b4) Tb4b4b4=> Te6edf3id Tff7b72!== Te6edf3movingIdTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3insertAt Tff7b72= Te6edf3idsTb4b4b4.Te6edf3indexOfTb4b4b4(Te6edf3lastIdTb4b4b4)Tb4b4b4;
Te6edf3moveIdInItemOrderTb4b4b4(Te6edf3nextTb4b4b4, Te6edf3itemsTb4b4b4, Te6edf3movingIdTb4b4b4, Te6edf3insertAt Tff7b72< T79c0ff0 Tff7b72? Te6edf3idsTb4b4b4.Te6edf3length Tff7b72: Te6edf3insertAt Tff7b72+ T79c0ff1Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3groupItemsTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3firstId Tff7b72= Te6edf3groupItemsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4.Te6edf3idTb4b4b4;
Tff7b72const Te6edf3ids Tff7b72= Te6edf3orderedIdsTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3idTb4b4b4) Tb4b4b4=> Te6edf3id Tff7b72!== Te6edf3movingIdTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3insertAt Tff7b72= Te6edf3idsTb4b4b4.Te6edf3indexOfTb4b4b4(Te6edf3firstIdTb4b4b4)Tb4b4b4;
Te6edf3moveIdInItemOrderTb4b4b4(Te6edf3nextTb4b4b4, Te6edf3itemsTb4b4b4, Te6edf3movingIdTb4b4b4, Te6edf3insertAt Tff7b72< T79c0ff0 Tff7b72? T79c0ff0 Tff7b72: Te6edf3insertAtTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3firstMore Tff7b72= Te6edf3viewTb4b4b4.Te6edf3moreItemsTb4b4b4.Te6edf3findTb4b4b4(Tb4b4b4(Te6edf3itemTb4b4b4) Tb4b4b4=> Te6edf3itemTb4b4b4.Te6edf3id Tff7b72!== Te6edf3movingIdTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3ids Tff7b72= Te6edf3orderedIdsTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3idTb4b4b4) Tb4b4b4=> Te6edf3id Tff7b72!== Te6edf3movingIdTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3insertAt Tff7b72= Te6edf3firstMore Tff7b72? Te6edf3idsTb4b4b4.Te6edf3indexOfTb4b4b4(Te6edf3firstMoreTb4b4b4.Te6edf3idTb4b4b4) Tff7b72: Te6edf3idsTb4b4b4.Te6edf3lengthTb4b4b4;
Te6edf3moveIdInItemOrderTb4b4b4(Te6edf3nextTb4b4b4, Te6edf3itemsTb4b4b4, Te6edf3movingIdTb4b4b4, Te6edf3insertAt Tff7b72< T79c0ff0 Tff7b72? Te6edf3idsTb4b4b4.Te6edf3length Tff7b72: Te6edf3insertAtTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}

Tff7b72if Tb4b4b4(Te6edf3targetTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"more" Tff7b72|| Te6edf3targetTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"more-start" Tff7b72|| Te6edf3targetTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"more-end"Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3preservePlacementTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3current Tff7b72= Te6edf3nextTb4b4b4.Te6edf3placementsTb4b4b4[Te6edf3movingIdTb4b4b4] Tff7b72|| Te6edf3defaultNavPlacementTb4b4b4(Te6edf3movingItemTb4b4b4)Tb4b4b4;
Te6edf3ensurePlacementTb4b4b4(Te6edf3nextTb4b4b4, Te6edf3movingIdTb4b4b4, Tb4b4b4{ Te6edf3groupTff7b72: Te6edf3currentTb4b4b4.Te6edf3groupTb4b4b4, Te6edf3tierTff7b72: Ta5d6ff"more" Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3view Tff7b72= Te6edf3applyNavLayoutTb4b4b4(Te6edf3itemsTb4b4b4, Te6edf3nextTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3moreItems Tff7b72= Te6edf3viewTb4b4b4.Te6edf3moreItemsTb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3itemTb4b4b4) Tb4b4b4=> Te6edf3itemTb4b4b4.Te6edf3id Tff7b72!== Te6edf3movingIdTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3ids Tff7b72= Te6edf3orderedIdsTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3idTb4b4b4) Tb4b4b4=> Te6edf3id Tff7b72!== Te6edf3movingIdTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3targetTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"more-end" Tff7b72&& Te6edf3moreItemsTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3lastId Tff7b72= Te6edf3moreItemsTb4b4b4[Te6edf3moreItemsTb4b4b4.Te6edf3length Tff7b72- T79c0ff1Tb4b4b4]Tb4b4b4.Te6edf3idTb4b4b4;
Tff7b72const Te6edf3insertAt Tff7b72= Te6edf3idsTb4b4b4.Te6edf3indexOfTb4b4b4(Te6edf3lastIdTb4b4b4)Tb4b4b4;
Te6edf3moveIdInItemOrderTb4b4b4(Te6edf3nextTb4b4b4, Te6edf3itemsTb4b4b4, Te6edf3movingIdTb4b4b4, Te6edf3insertAt Tff7b72< T79c0ff0 Tff7b72? Te6edf3idsTb4b4b4.Te6edf3length Tff7b72: Te6edf3insertAt Tff7b72+ T79c0ff1Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3moreItemsTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3insertAt Tff7b72= Te6edf3idsTb4b4b4.Te6edf3indexOfTb4b4b4(Te6edf3moreItemsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4.Te6edf3idTb4b4b4)Tb4b4b4;
Te6edf3moveIdInItemOrderTb4b4b4(Te6edf3nextTb4b4b4, Te6edf3itemsTb4b4b4, Te6edf3movingIdTb4b4b4, Te6edf3insertAt Tff7b72< T79c0ff0 Tff7b72? Te6edf3idsTb4b4b4.Te6edf3length Tff7b72: Te6edf3insertAtTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}
Te6edf3moveIdInItemOrderTb4b4b4(Te6edf3nextTb4b4b4, Te6edf3itemsTb4b4b4, Te6edf3movingIdTb4b4b4, Te6edf3idsTb4b4b4.Te6edf3lengthTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {NavLayout | null | undefined} layout
* @param {string} itemId
* @param {number} delta
* @param {Array<{ id: string, group?: string, navTier?: string }>} items
* @param {{ preservePlacement?: boolean }} [options]
* @returns {NavLayout | null}
*/
Tff7b72export Tff7b72function Te6edf3moveNavItemByOffsetTb4b4b4(Te6edf3layoutTb4b4b4, Te6edf3itemIdTb4b4b4, Te6edf3deltaTb4b4b4, Te6edf3itemsTb4b4b4, Te6edf3options Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3movingId Tff7b72= Te6edf3cleanIdTb4b4b4(Te6edf3itemIdTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3step Tff7b72= Te6edf3delta Tff7b72> T79c0ff0 Tff7b72? T79c0ff1 Tff7b72: Te6edf3delta Tff7b72< T79c0ff0 Tff7b72? Tff7b72-T79c0ff1 Tff7b72: T79c0ff0Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3movingId Tff7b72|| Te6edf3step Tff7b72=== T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3cloneNavLayoutTb4b4b4(Te6edf3layoutTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3preservePlacement Tff7b72= Te6edf3optionsTb4b4b4.Te6edf3preservePlacement Tff7b72=== Tff7b72trueTb4b4b4;
Tff7b72const Te6edf3view Tff7b72= Te6edf3applyNavLayoutTb4b4b4(Te6edf3itemsTb4b4b4, Te6edf3layoutTb4b4b4, Tb4b4b4{ Te6edf3includeEmptyGroupsTff7b72: Tff7b72false Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3sequence Tff7b72= Te6edf3preservePlacement
Tff7b72? Te6edf3orderItemsByLayoutTb4b4b4(Te6edf3itemsTb4b4b4, Te6edf3layoutTb4b4b4)
Tff7b72: Tb4b4b4[Tb4b4b4...Te6edf3viewTb4b4b4.Te6edf3primaryGroupsTb4b4b4.Te6edf3flatMapTb4b4b4(Tb4b4b4(Te6edf3groupTb4b4b4) Tb4b4b4=> Te6edf3groupTb4b4b4.Te6edf3itemsTb4b4b4)Tb4b4b4, Tb4b4b4...Te6edf3viewTb4b4b4.Te6edf3moreItemsTb4b4b4]Tb4b4b4;
Tff7b72const Tff7b72from Tff7b72= Te6edf3sequenceTb4b4b4.Te6edf3findIndexTb4b4b4(Tb4b4b4(Te6edf3itemTb4b4b4) Tb4b4b4=> Te6edf3itemTb4b4b4.Te6edf3id Tff7b72=== Te6edf3movingIdTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3to Tff7b72= Tff7b72from Tff7b72+ Te6edf3stepTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72from Tff7b72< T79c0ff0 Tff7b72|| Te6edf3to Tff7b72< T79c0ff0 Tff7b72|| Te6edf3to Tff7b72>= Te6edf3sequenceTb4b4b4.Te6edf3lengthTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3cloneNavLayoutTb4b4b4(Te6edf3layoutTb4b4b4) Tff7b72|| Te6edf3captureNavLayoutTb4b4b4(Te6edf3viewTb4b4b4.Te6edf3primaryGroupsTb4b4b4, Te6edf3viewTb4b4b4.Te6edf3moreItemsTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3target Tff7b72= Te6edf3sequenceTb4b4b4[Te6edf3toTb4b4b4]Tb4b4b4;
Tff7b72return Te6edf3moveNavItemTb4b4b4(
Te6edf3layoutTb4b4b4,
Te6edf3movingIdTb4b4b4,
Tb4b4b4{ Te6edf3typeTff7b72: Ta5d6ff"item"Tb4b4b4, Te6edf3idTff7b72: Te6edf3targetTb4b4b4.Te6edf3idTb4b4b4, Te6edf3positionTff7b72: Te6edf3step Tff7b72> T79c0ff0 Tff7b72? Ta5d6ff"after" Tff7b72: Ta5d6ff"before" Tb4b4b4}Tb4b4b4,
Te6edf3itemsTb4b4b4,
Te6edf3options
Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {NavLayout | null | undefined} layout
* @param {string} groupId
* @param {string | null | undefined} beforeGroupId
* @returns {NavLayout | null}
*/
Tff7b72export Tff7b72function Te6edf3moveNavGroupTb4b4b4(Te6edf3layoutTb4b4b4, Te6edf3groupIdTb4b4b4, Te6edf3beforeGroupIdTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3next Tff7b72= Te6edf3cloneNavLayoutTb4b4b4(Te6edf3layoutTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3nextTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3movingId Tff7b72= Te6edf3cleanIdTb4b4b4(Te6edf3groupIdTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3movingIdTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3nextTb4b4b4.Te6edf3groupOrderTb4b4b4.Te6edf3includesTb4b4b4(Te6edf3movingIdTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3nextTb4b4b4.Te6edf3groupOrderTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3movingIdTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3without Tff7b72= Te6edf3nextTb4b4b4.Te6edf3groupOrderTb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3idTb4b4b4) Tb4b4b4=> Te6edf3id Tff7b72!== Te6edf3movingIdTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3beforeId Tff7b72= Te6edf3cleanIdTb4b4b4(Te6edf3beforeGroupIdTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3beforeIdTb4b4b4) Tb4b4b4{
Te6edf3withoutTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3movingIdTb4b4b4)Tb4b4b4;
Te6edf3nextTb4b4b4.Te6edf3groupOrder Tff7b72= Te6edf3withoutTb4b4b4;
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3insertAt Tff7b72= Te6edf3withoutTb4b4b4.Te6edf3indexOfTb4b4b4(Te6edf3beforeIdTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3insertAt Tff7b72< T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3withoutTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3movingIdTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3withoutTb4b4b4.Te6edf3spliceTb4b4b4(Te6edf3insertAtTb4b4b4, T79c0ff0Tb4b4b4, Te6edf3movingIdTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3nextTb4b4b4.Te6edf3groupOrder Tff7b72= Te6edf3withoutTb4b4b4;
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}

T8b949e/**
* @param {NavLayout | null | undefined} layout
* @param {string} groupId
* @param {number} delta
* @returns {NavLayout | null}
*/
Tff7b72export Tff7b72function Te6edf3moveNavGroupByOffsetTb4b4b4(Te6edf3layoutTb4b4b4, Te6edf3groupIdTb4b4b4, Te6edf3deltaTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3next Tff7b72= Te6edf3cloneNavLayoutTb4b4b4(Te6edf3layoutTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3nextTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3movingId Tff7b72= Te6edf3cleanIdTb4b4b4(Te6edf3groupIdTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3step Tff7b72= Te6edf3delta Tff7b72> T79c0ff0 Tff7b72? T79c0ff1 Tff7b72: Te6edf3delta Tff7b72< T79c0ff0 Tff7b72? Tff7b72-T79c0ff1 Tff7b72: T79c0ff0Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3movingId Tff7b72|| Te6edf3step Tff7b72=== T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}
Tff7b72const Tff7b72from Tff7b72= Te6edf3nextTb4b4b4.Te6edf3groupOrderTb4b4b4.Te6edf3indexOfTb4b4b4(Te6edf3movingIdTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72from Tff7b72< T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3to Tff7b72= Tff7b72from Tff7b72+ Te6edf3stepTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3to Tff7b72< T79c0ff0 Tff7b72|| Te6edf3to Tff7b72>= Te6edf3nextTb4b4b4.Te6edf3groupOrderTb4b4b4.Te6edf3lengthTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3without Tff7b72= Te6edf3nextTb4b4b4.Te6edf3groupOrderTb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3idTb4b4b4) Tb4b4b4=> Te6edf3id Tff7b72!== Te6edf3movingIdTb4b4b4)Tb4b4b4;
Te6edf3withoutTb4b4b4.Te6edf3spliceTb4b4b4(Te6edf3toTb4b4b4, T79c0ff0Tb4b4b4, Te6edf3movingIdTb4b4b4)Tb4b4b4;
Te6edf3nextTb4b4b4.Te6edf3groupOrder Tff7b72= Te6edf3withoutTb4b4b4;
Tff7b72return Te6edf3nextTb4b4b4;
Tb4b4b4}


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────